// pages/films/index.js
Page({
	sleep(job,ms) {
		return new Promise((resolve, reject) => {
			setTimeout(() => {
				console.log(job + ' done!')
				resolve()
			}, ms)
		})
	},
	async Demo() { //await修饰的语句所在的函数必须用async修饰
		await this.sleep('job1',3000) //await会等待后面的Promise返回结果
		await this.sleep('job2',2000)
		await this.sleep('job3',1000)
	},
	regexTest(){ //正则编程测试
		let s='aaa123 www  bbb456 ccc789  567'
		let r, regex=/([a-zA-Z]+)([0-9]+)/g
		while(r=regex.exec(s)){ //若r==null，表示没有匹配成功
			console.log(r) //["aaa123", "aaa", "123", index: 0, input: "aaa123 www  bbb456 ccc789  567", groups: undefined]
		}
	},
    onLoad(e) { //页面加载时执行
        this.host='https://www.gow64.com'
		//this.regexTest()
		let data = wx.getStorageSync('menus') //读取手机缓存的数据
		if (data) this.setData(data) //若有缓存的数据就设置为页面数据
	},
	async types(e) {
		let typeIndex=e.target.dataset.index //点击类型项的索引号
		if(typeIndex==null)return //没有点击在类型项上，就直接返回
		let menuIndex=this.data.menuIndex //当前菜单项索引号
		let change={} //记录有变化的数据
        let menu=this.data.menus[menuIndex] //当前菜单项
		let oldTypeIndex= menu.typeIndex //原来选择的类型项的索引号
		if(oldTypeIndex!=null)change[`menus[${menuIndex}].types[${oldTypeIndex}].selected`]=false
		change[`menus[${menuIndex}].types[${typeIndex}].selected`]=true
		change[`menus[${menuIndex}].typeIndex`]=typeIndex
		this.setData(change)
        let app=getApp() //获取小程序对象
        let type= menu.types[typeIndex] //点击的类型项
        if(type.list && type.list.length>0)return
        let s, r, list=[], regex=/<a href="([^"]+)" title="([^"]+)" class="module-item-pic"><img class="lazyload" data-src="([^"]+)"/g
		while(true){
            s=await app.request({url: `${this.host}/by/${type.id}.html`})
			if(s!=null)break 
			r=await wx.showModal({ 
				// title: '加载失败',
				content: '读取信息失败，是否重试？',
			})
			if(r.cancel)break
		}
		console.log(r)
		while(r=regex.exec(s)){ //若r==null，表示没有匹配成功
			//console.log(r) //["aaa123", "aaa", "123", index: 0, input: "aaa123 www  bbb456", groups: undefined]
			list.push({
				url: r[1],
				title: r[2],
				img: r[3],
			})
		}
		console.log(list)
	},
	menus(e){ 
		let menuIndex=e.currentTarget.dataset.index 
		if(menuIndex==0){ 
			return
		}
		let oldIndex=this.data.menuIndex 
		let change={menuIndex} 
		change[`menus[${oldIndex}].selected`]=false
		change[`menus[${menuIndex}].selected`]=true
		this.setData(change)
	},
	onUnload(){
		console.log("onUnload")
		this.save()
	},
	onHide(){
		console.log("onHide")
		this.save()
	},
	save(){ 
		let data=this.data
		delete data.__webviewId__
		wx.setStorageSync('menus', data) 
    },
    play(e){
		let index=e.currentTarget.dataset.index //点击视频列表的索引号
		wx.navigateTo({
			url: `./player?index=${index}`,
		})
	},
	// 正则表达式
	//  ( ） 分组，替换时 $1表示分组1的内容，$2表示分组2的内容，...
	//  \d 表示任意的一位数字0-9
	//  \d+ 表示任意连续的多位数组，+修饰前面的\d, 表示\d至少出现 1 次
	//  [xyz] 表示可以是x\y\z三者中的任意一个字符
	//  [a-z] 匹配一位英文小写字符
	//  [a-z#@A-Z] 匹配英文大小写字符或者#，@中的任意一个字符
    //  [^a-j] 匹配不是a-j的任意字符
    //  .  可以匹配任意字符，除了换行 \n
    //  |  或者，比如：aaa|bbb可以匹配aaa或者bbb

	// 量词
	// (1) + 至少出现1次
	// (2) * 至少出现0次
	// (3) ? （1)只能出现0次或者1次， (2)若修饰量词时表示 “非贪婪模式”
	// {3, 8} 出现3到8次

	// 修饰符
	// (1) g  全局匹配
	// (2) s  单行模式，此时.可以匹配\n
	
data: {
	menuIndex: 2,
	menus: [{
		name: '[刷新]'
	}, {
		name: '[搜索]',
	}, {
		name: '电影',
		selected: true,
		types: [
			{ name: '动作片', id: 14 },
			{ name: '喜剧片', id: 15 },
			{ name: '爱情片', id: 16 },
			{ name: '科幻片', id: 17 },
			{ name: '恐怖片', id: 18 },
			{ name: '剧情片', id: 19 },
			{ name: '战争片', id: 20 },
			{ name: '纪录片', id: 21 },
		]
	}, {
		name: '电视剧',
		types: [
			{ name: '国产剧', id: 5 },
			{ name: '香港剧', id: 6 },
			{ name: '台湾剧', id: 7 },
			{ name: '欧美剧', id: 8 },
			{ name: '韩国剧', id: 9 },
			{ name: '日本剧', id: 10 },
			{ name: '泰国剧', id: 11 },
			{ name: '海外剧', id: 12 },
			{ name: '短剧', id: 13 },
		]
	}, {
		name: '综艺',
		types: [
			{ name: '大陆综艺', id: 22 },
			{ name: '港台综艺', id: 23 },
			{ name: '欧美综艺', id: 24 },
			{ name: '日韩综艺', id: 25 },
		]
	}, {
		name: '动漫',
		types: [
			{ name: '国产动漫', id: 26 },
			{ name: '日韩动漫', id: 27 },
			{ name: '欧美动漫', id: 28 },
			{ name: '海外动漫', id: 29 },
			{ name: '动漫电影', id: 30 },
		]
	}]
},

})